﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace demo6
{
    class Program
    {
        //一个考试管理系统，需要录入考生成绩，只能录入数字，否则会报类型转换异常。
        //请编写相关代码，
        //1、捕获FormatException异常，并打印输出“异常已处理；
        //2、捕获OverflowException异常，数值超出float范围的异常，并打印输出“异常已处理；
        //3、捕获一般异常Exception异常。
        //4、最终处理finally
        //录入成绩结束后，请输出，总学生数，总分数，平均分。


        static void Main(string[] args)
        {
            Student s1 = new Student();
            Student s2 = new Student();

            List<Student> k = new List<Student>() {s1,s2 };
            float sum = 0;

            while (true)
            {
                try
                {
                    for (int i = 0; i < k.Count; i++)
                    {
                        Console.WriteLine($"请输入第{i + 1}个考生成绩");
                        k[i].Score = float.Parse(Console.ReadLine());
                        sum += k[i].Score;
                    }
                }
                catch (FormatException)
                {
                    Console.WriteLine("异常已处理");
                }
                catch (OverflowException O)
                {
                    Console.WriteLine("数值超出float范围的异常，异常信息：");
                    Console.WriteLine(O.Message);
                    Console.WriteLine(O.Source);
                    Console.WriteLine(O.StackTrace);

                    Console.WriteLine("异常已处理");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                    Console.WriteLine(e.StackTrace);
                    Console.WriteLine("捕获所有的异常，异常信息：");
                }
                finally
                {
                    Console.WriteLine("finally，最终处理。");
                }
                Console.WriteLine($"总学生数{k.Count},总分数{sum}，平均分{sum / k.Count()}");
            }
        }
    }
}
